草庐IT

javascript - 正则匹配表情

全部标签

ruby - 返回 Ruby 正则表达式的第一个匹配项

我正在寻找一种在Ruby中对字符串执行正则表达式匹配并使其在第一个匹配项时短路的方法。我正在处理的字符串很长,从标准方式(match方法)来看,它会处理整个字符串,收集每个匹配项,并返回一个包含所有匹配项的MatchData对象。match=string.match(/regex/)[0].to_s 最佳答案 你可以试试String#[](如variableName[/regularexpression/])。这是IRB的示例输出:names="erikkallejohananderserikkallejohananders"#=>

ruby - 如何通过匹配 Capybara 中元素的精确文本来查找元素

我在HTML中有以下两个元素BerlinBerlinGermany我正在尝试使用以下Capybara方法查找元素find("a",:text=>"berlin")上面将返回两个元素,因为它们都包含文本berlin。有没有办法在Capybara中精确匹配文本? 最佳答案 使用正则表达式而不是字符串作为:text键的值:find("a",:text=>/\ABerlin\z/)查看方法的“选项哈希”部分:Capybara::Node::Finders#alldocumentation.PS:文本匹配是区分大小写的。您的示例代码实际上引发

使用变量名的 Ruby 正则表达式

是否可以在ruby​​中创建/使用基于变量名值的正则表达式模式?例如,我们都知道我们可以使用Ruby字符串执行以下操作:str="mystring"str2="Thisis#{str}"#=>"Thisismystring"我想用正则表达式做同样的事情:var="Value"str="atestValue"str.gsub(/#{var}/,'foo')#=>"atestfoo"显然,这并不像列出的那样工作,我只是把它放在那里作为一个例子来展示我想做什么。我需要根据变量内容的值进行正则表达式匹配。 最佳答案 您认为行不通的代码:va

ruby - 将字符串转换为正则表达式 ruby

我需要将像“/[\w\s]+/”这样的字符串转换为正则表达式。"/[\w\s]+/"=>/[\w\s]+/我尝试使用不同的Regexp方法,例如:Regexp.new("/[\w\s]+/")=>/\/[w]+\//,类似Regexp.compile和Regexp.escape。但它们都没有像我预期的那样返回。此外,我还尝试删除反斜杠:Regexp.new("[\w\s]+")=>/[w]+/但运气不好。然后我试着简单一点:str="[\w\s]+"=>"[w]+"它逃脱了。现在字符串如何保持原样并转换为正则表达式对象? 最佳答案

Ruby 用捕获的正则表达式模式替换字符串

我在将它翻译成Ruby时遇到了问题。这是一段JavaScript,它完全符合我的要求:functionget_code(str){returnstr.replace(/^(Z_.*):.*/,"$1")​​​​​​​​​​​​​​​​​​​​​​​​​​​;}我试过了gsub,sub,和replace但似乎没有一个能达到我的预期。以下是我尝试过的示例:"Z_sdsd:sdsd".gsub(/^(Z_.*):.*/){|capture|capture}"Z_sdsd:sdsd".gsub(/^(Z_.*):.*/,"$1")"Z_sdsd:sdsd".gsub(/^(Z_.*):.*/,

Ruby 正则表达式组匹配,在 1 行上分配变量

我目前正在尝试将一个字符串转换为多个变量。示例字符串:ryan_string="RyanOnRails:Thisisatest"我已将其与此正则表达式匹配,分为3组:ryan_group=ryan_string.scan(/(^.*)(:)(.*)/i)现在要访问每个组,我必须执行如下操作:ryan_group[0][0](firstgroup)RyanOnRailsryan_group[0][1](secondgroup):ryan_group[0][2](thirdgroup)Thisisatest这看起来很荒谬,感觉我做错了什么。我希望能够做这样的事情:g1,g2,g3=ryan

ruby - 使用正则表达式从 Ruby 中的字符串中提取子字符串

如何从Ruby中的字符串中提取子字符串?例子:String1=""我想提取substring来自String1(即最后一次出现的和>中的所有内容)。 最佳答案 ""[/.*]*)/,1]=>"substring"不需要使用scan,如果我们只需要一个结果。当我们有Ruby的String[regexp,#]时,不需要使用Python的match。参见:http://ruby-doc.org/core/String.html#method-i-5B-5D注意:str[regexp,capture]→new_strornil

ruby - Ruby正则表达式中\A\z和^$的区别

在我阅读的文档中:Use\Aand\ztomatchthestartandendofthestring,^and$matchthestart/endofaline.我将应用正则表达式来检查用户提交的用户名(或电子邮件是否相同)。我应该在模型中将哪个表达式与validates_format_of一起使用?我无法理解其中的区别:我一直使用^和$... 最佳答案 如果您依赖正则表达式进行验证,您总是希望使用\A和\z.^和$只会匹配到换行符,这意味着他们可以使用像me@example.com\ndangerous_stuff();这样的电

ruby - 如何找到包含匹配值的哈希键

鉴于我有以下clients哈希,是否有一种快速的ruby​​方法(无需编写多行脚本)来获取我想要匹配client_id的key?例如。如何获取client_id=="2180"的key?clients={"yellow"=>{"client_id"=>"2178"},"orange"=>{"client_id"=>"2180"},"red"=>{"client_id"=>"2179"},"blue"=>{"client_id"=>"2181"}} 最佳答案 Ruby1.9及更高版本:hash.key(value)=>keyruby1

ruby - 如何在 Ruby 中匹配所有出现的正则表达式

有没有一种快速的方法可以在Ruby中找到每个正则表达式的匹配项?我查看了RubySTL中的Regex对象并在Google上搜索无果。 最佳答案 使用scan应该做的伎俩:string.scan(/regex/) 关于ruby-如何在Ruby中匹配所有出现的正则表达式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/80357/